package com.dingding.service.account.core.special.dao;

import java.util.List;

import com.dingding.common.core.beans.special.SpecialDepositAccount;
import com.dingding.common.core.beans.special.Specialdepositrecord;
import com.dingding.common.core.beans.special.Specialuseraccount;
import com.dingding.facade.account.common.dto.special.ResGetSpecialDepositAccount;
import com.dingding.facade.account.common.dto.special.ResSUAStatus;

/**
 * 
 * @ClassName: ISpecialUserAccountDao 
 * @Description: 专车用户账户DAO接口类
 * @author YHQ
 * @date 2016年12月21日 上午10:56:07
 * @since V2.5.8
 * 
 */
public interface ISpecialUserAccountDao {

	/**
	 * 
	 * @Title: getSpecialUserAuthenticationStatus 
	 * @Description: 获取专车用户提现认证状态
	 * @param userId 用户Id
	 * @author YHQ 
	 * @since V2.5.8
	 * @return ResSUAStatus 返回类型
	 * 
	 */
	public ResSUAStatus getSpecialUserAuthenticationStatus(String userId);
	
	/**
	 * 
	 * @Title: addDepositAccount 
	 * @Description: 根据专车用户id添加专车用户提现账户
	 * @param specialDepositAccount 用户提现账户信息
	 * @author YHQ 
	 * @since V2.5.8
	 * @return boolean    返回类型
	 * 
	 */
	public boolean addSpecialDepositAccount(SpecialDepositAccount specialDepositAccount);
	
	/**
	 * 
	 * @Title: deleteSpecialDepositAccount 
	 * @Description: 根据专车用户id删除提现账户
	 * @param depositAccountId 提现账户Id
	 * @param userId 用户Id
	 * @author YHQ 
	 * @since V2.5.8 
	 * @return boolean    返回类型
	 * 
	 */
	public boolean deleteSpecialDepositAccount(Integer depositAccountId,String userId);
	
	/**
	 * 
	 * @Title: getSpecialDepositAccountList 
	 * @Description: 根据专车用户id获取提现账户列表(启用状态提现账户列表)
	 * @param userId 用户Id
	 * @author YHQ 
	 * @since V2.5.8
	 * @return List<ResGetSpecialDepositAccount>    返回类型
	 * 
	 */
	public List<ResGetSpecialDepositAccount> getSpecialDepositAccountList(String userId);
	
	/**
	 * 
	 * @Title: getSpecialDepositAccount 
	 * @Description: 获取全部专车提现账户列表(启用和禁用)
	 * @param userId 用户Id
	 * @author YHQ 
	 * @since V2.6.3
	 * @return List<SpecialDepositAccount>    返回类型
	 * 
	 */
	public List<SpecialDepositAccount> getSpecialDepositAccount(String userId);
	
	/**
	 * 
	 * @Title: getSpecialUserAccount 
	 * @Description: 获取专车用户账户信息
	 * @param userId 用户Id
	 * @author YHQ 
	 * @since V2.6.3
	 * @return Specialuseraccount    返回类型
	 * 
	 */
	public Specialuseraccount getSpecialUserAccount(String userId);
	
	/**
	 * 
	 * @Title: updateSpecialUserAccount 
	 * @Description: 修改专车用户账户信息
	 * @param specialuseraccount 用户账户信息
	 * @author YHQ 
	 * @since V2.6.3
	 * @return boolean    返回类型
	 * 
	 */
	public boolean updateSpecialUserAccount(Specialuseraccount specialuseraccount);
	
	/**
	 * 
	 * @Title: addSpecialDepositRecord 
	 * @Description: 添加专车提现信息
	 * @param specialdepositrecord 提现信息
	 * @author YHQ 
	 * @since V2.6.3
	 * @return boolean    返回类型
	 * 
	 */
	public boolean addSpecialDepositRecord(Specialdepositrecord specialdepositrecord);
	
}
